<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
      //es6 Set类似于数组，但是成员的值都是唯一的，没有重复的值
      let myarr=new Set([1,2,3,4,5,1,2,3,5]);
      console.log(myarr)
      // set的长度使用size属性
      console.log(myarr.size)
      // 用array.from将set可以转为数组
      console.log(Array.from(myarr)) 

      
      let names=new Set();
      // 添加数据的方法add
       names.add("嚣张");
       names.add("跋扈");
       names.add([1,2,3])
       names.add([1,2,3])
       console.log(names)
    // 删除set的数据项delete
      names.delete("跋扈")
      console.log(names)
    // 判断set数据中是否包含某一项 has()
    console.log(names.has("嚣张"))
    // 清空set的方法 clear()
    names.clear();
    let myset=new Set(["你好","沈腾","马力","贾玲","雷佳音","你好"])  
    // set可以使用已前的循环
    myset.forEach(item=>{
      console.log(item)
    })

    // Map()
    // Map类似于对象，也是键值对的集合，但是“键”的范围不限于字符串，各种类型的值
    let tk={k:1};
      let mymap=new Map([
          ['name','张三'],
          ['age',18],
          [true,99],
          [tk,'你好']
        ])
        console.log(mymap)
    // 循环使用
    // mymap.forEach(item=>{
    //   console.log(item)
    // })
    // for of()  //循环迭代器
    let obj={
      name:1,
      age:2
    }
    for(k of Object.keys(obj)){
      console.log(k)
    }
    // for of 循环map k--map的key  v--map--value 
    for([k,v] of mymap){
      console.log(k,"----",v)
    }
    // map的添加set
    mymap.set("sex","男")
    // map的删除 delete
    mymap.delete('sex')
    // map的获取方法
    console.log(mymap.get(tk))

    // for of 可以循环类似对象的二维数组
    let arr=[[1,2],[3,4]]
    for([k,v] of arr){
      console.log(k,"----",v)
    }
    
  </script>
</body>
</html>